Generalized singular value decomposition